﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;

namespace Sinacor.Infra.UI.Controls.SmartClient
{
    /// <summary>
    /// Handler do evento que aplica um estilo ao item
    /// </summary>
    /// <param name="sender">Objeto que disparou o evento</param>
    /// <param name="e">Parâmetros do evento</param>
    public delegate void ApplyStyleHandler(object sender, ApplyStyleEventArgs e);

    /// <summary>
    /// Parâmetros do evento que aplica um estilo ao item
    /// </summary>
    public class ApplyStyleEventArgs : ItemEventArgs
    {

        #region Construtores
        /// <summary>
        /// Construtor padrão
        /// </summary>
        public ApplyStyleEventArgs()
            : base()
        {
        }

        /// <summary>
        /// Construtor que inicializa RoutedEvent
        /// </summary>
        /// <param name="routedEvent">RoutedEvent</param>
        public ApplyStyleEventArgs(RoutedEvent routedEvent)
            : base(routedEvent)
        {
        }

        /// <summary>
        /// Construtor que inicializa RoutedEvent e Source
        /// </summary>
        /// <param name="routedEvent">RoutedEvent</param>
        /// <param name="source">Source</param>
        public ApplyStyleEventArgs(RoutedEvent routedEvent, object source)
            : base(routedEvent, source)
        {
        }

        /// <summary>
        /// Construtor que inicializa RoutedEvent, Source, e ItemInfo
        /// </summary>
        /// <param name="routedEvent">RoutedEvent</param>
        /// <param name="source">Source</param>
        /// <param name="itemInfo">Informações sobre o item</param>
        public ApplyStyleEventArgs(RoutedEvent routedEvent, object source, ItemInfo itemInfo)
            : base(routedEvent, source, itemInfo)
        {
        }

        #endregion

        #region Propriedades

        private string _style = null;
        /// <summary>
        /// Estilo a ser aplicado
        /// </summary>
        public string Style
        {
            get { return _style; }
            set { _style = value; }
        }
        #endregion

   }
}
